【IAM】リードオンリーのユーザーにパスワード変更を許可する方法について
はじめに
こんにちは植木和樹です。先日IAMについて機能拡張のアナウンスがありました。早速、大瀧さんがブログに書いていますね。
このブログ読んででふと気づいたのですが、"Allow users to change their own password"のチェックボックスは以前からありましたでしょうか?
画面に表示されているヒントには "Enables all IAM users to change their own passwords. You can allow only specific users to change their own passwords by clearing this box and allowing this action in their IAM user or group policy."と書かれています。
これまでは作成するIAMユーザーに対して、パスワードの変更を許可する権限(IAMポリシー)を与えていました。そこで、この項目をチェックするのとしないのとでは、どのように挙動が変わるのか調べてみました。
参考資料
AWSの公式ドキュメントに"Allow users to change their own password"と、ユーザーパスワードの変更手順に関する記載があります。
- Letting IAM Users Change Their Own Passwords - AWS Identity and Access Management
- How IAM Users Change Their Own Password - AWS Identity and Access Management
これを読むと、パスワードの変更方法は下記の2通りあるようです。
- マネージメントコンソール メニュー右上の"Security Credentials"から変更する方法
- IAMの画面 "Security Credentials"タブの"Sign-In Credentials"から変更する方法
検証方法
- 2名のゲストユーザー "guest1" と "guest2" を作成する。
- 両方のユーザーにReadOnly権限を与える。
- "guest1"には上記に加えて"iam:iam:ChangePassword","iam:UpdateLoginProfile"を与える。
- 管理者ユーザーで"Allow users to change their own password"のチェックをOn/Offに変更する。その際に各ゲストユーザーで2通りのパスワード変更方法それぞれが操作できるか確認する。
つまり「2名のゲストユーザー」x「2通りのパスワード変更方法」x「"Allow users to change their own password"のOn/Off」で、計8通りの操作確認を行ってみました。
結果
結果一覧
ユーザー | 変更画面 | Allow users to change their own password | |
---|---|---|---|
Off | On(デフォルト) | ||
guest1 | IAMの画面から | できる | できる |
メニュー右上の画面から | できる | できる | |
guest2 | IAMの画面から | できない | できない |
メニュー右上の画面から | できない | できる |
解説
guest1のように個別にIAMの権限を与えておくと、"Allow users to change their own password"に関係なく、どちらの画面からでもパスワードの変更が可能です。
guest2のようにリードオンリー権限しか持たない場合は、"Allow users to change their own password"のチェックをオンにするとメニュー右上の"Security Credentials"からのパスワードが変更可能になります。
まとめ
"Allow users to change their own password"はすべてのユーザーに許可したい場合はチェックをオンに、特定のユーザーにのみパスワード変更を許可したい場合はチェックをオフにしておいてください。
ただ、あえてユーザーに「パスワードの変更を許さない」ユースケースというのはあまりないと思いますので
- "Allow users to change their own password"は常にチェックしておく。(デフォルトのまま)
- パスワードの変更はメニュー右上の"Security Credentials"から行う。
- ユーザー個別に"iam:iam:ChangePassword","iam:UpdateLoginProfile"はつける必要がない。
で良いようです。参考になりましたでしょうか。